package com.dsi.capa.bean;

import java.io.Serializable;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.regex.Pattern;
import com.dsi.capa.db.dao.PagoDAO;
import com.dsi.capa.db.model.Pago;
import com.dsi.capa.db.util.DataSourceUtil;

public class PagoBean implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private Pago pago;
	
	private List<Pago> pagos;

	private PagoDAO pagoDAO;
	
	private Integer page;
	
	private Integer pageSize;
	
	private List<Pago> registros=null;
	
	private Integer maxRows=10;
	
	public PagoBean() {
		pago = new Pago();
		pagoDAO = new PagoDAO(DataSourceUtil.getDataSource());
		page = new Integer(0);
		pageSize = new Integer(10);
		//pagos = pagoDAO.findBy(null,null,null,page.intValue()*pageSize.intValue(), pageSize);
		
	}
	
	public String validarPago()
	{
		String exito="pagoExitoso";
		String fracaso="ingresoPago";
		Calendar fecha = new GregorianCalendar();
		
		return "";
	}

	
	//METODO PARA CARGAR UN SOLO PAGO
//	public String cargarPago()
//	{
//		pago = pagoDAO.buscarPago(pago);
//		
//		return "actualizaPago";
//	}
	//METODO PARA CARGAR UN SOLO PAGO
//	public String cargarPagoElimina()
//	{
//		pago = pagoDAO.buscarPago(pago);
//		
//		return "ingresarpag";
//	}
//	public String cargarPagoOtro()
//	{
//		pago = pagoDAO.buscarPago(pago);
//		
//		return "ingresarPago";
//	}
	/**************************************************************************/
	

	public Pago getPago() {
		return pago;
	}

	public void setPago(Pago pago) {
		this.pago = pago;
	}

	public List<Pago> getPagos() {
		return pagos;
	}

	public void setPagos(List<Pago> pagos) {
		this.pagos = pagos;
	}


	
	
	
	public String save() {
		pagoDAO.save(pago);
		pago = new Pago();
		return null;
	}
	
	public String delete() {
		pagoDAO.delete(pago);
		pago = new Pago();
		return null;
	}
	
	public String update() {
		pagoDAO.update(pago);
		pago = new Pago();
		return null;
	}
	
	public String obtenerMontoCuota(){
		String result=pagoDAO.obtenerMontoCuota(pago);
		return result;
	}
	
	/*--------------------------------------------------*/
	/*MANEJA LA NAVEGACION Y FILTROS DE BUSQUEDA*/
	
	public List<Pago> getRegistros() {
		if(registros == null) {
			registros = pagoDAO.findBy(pago.getIdColector(),pago.getDescripcion(),pago.getCuota(),pago.getFechaInicial(),pago.getFechaFinal()
				
					, page.intValue()*maxRows.intValue(), maxRows);
		}
		return registros;
	}
	
	public String buscar() {
		registros = null;
		page = new Integer(0);
		pagos=null;
		pagos=getRegistros();
		return "listaPagos";
		
	}
	/*public String nextPage() {
		page = page.intValue() + 1;
		pagos = pagoDAO.findAll(page.intValue()*pageSize.intValue(), pageSize);
		return null;
	}
	
	public String prevPage() {
		page = page.intValue() -1 ;
		if(page < 0) {
			page = 0;
		}
		pagos = pagoDAO.findAll(page.intValue()*pageSize.intValue(), pageSize);
		return null;
	}
	*/
	public String nextPage() {
		registros = null;
		page = new Integer(page.intValue() + 1);
		return "consulta";
	}
	
	public String prevPage() {
		registros = null;
		page = new Integer(page.intValue() - 1);
		if(page.intValue() < 0 ) {
			page = new Integer(0);
		}
		return "consulta";
	}

	public void setRegistros(List<Pago> registros) {
		this.registros = registros;
	}

	public Integer getPage() {
		return page;
	}

	public void setPage(Integer page) {
		this.page = page;
	}

	public Integer getMaxRows() {
		return maxRows;
	}

	public void setMaxRows(Integer maxRows) {
		this.maxRows = maxRows;
	}
	
	
	
	
	/* --------------------------------------------*/

}
